package com.honour.service.interfaced;

import java.util.List;

import com.system.util.PageData;

/**
 * 订单接口
 * @author zhanglingbing
 * @date 2018年1月30日
 */
public interface OrderManager {
	
	/**
	 * 保存地址
	 * @Author zhanglingbing
	 * @date 2018年1月30日
	 * @param pd
	 * @throws Exception
	 *
	 */
	public void saveAdderss(PageData pd)throws Exception;
	
	/**
	 * 修改默认状态
	 * @Author zhanglingbing
	 * @date 2018年1月30日
	 * @param pd
	 * @throws Exception
	 *
	 */
	public void updateStatus(PageData pd)throws Exception;

	
	/**
	 * 提交订单
	 * @author zhanglingbing
	 * @date 2018年2月1日
	 * @param pd
	 * @throws Exception
	 */
	public void save(PageData pd)throws Exception;
	
	/**
	 * 通过用户id和默认状态查询地址
	 * @Author zhanglingbing
	 * @date 2018年1月31日
	 * @param pd
	 * @return
	 * @throws Exception
	 *
	 */
	public PageData selectAdrByUserIdAndStatus(PageData pd)throws Exception;
	
	/**
	 * 修改地址
	 * @Author zhanglingbing
	 * @date 2018年1月31日
	 * @param pd
	 * @throws Exception
	 *
	 */
	public void updateAdr(PageData pd)throws Exception;
	
	/**
	 * 根据地址id查询单个地址信息
	 * @author zhanglingbing
	 * @date 2018年2月27日
	 * @param pd
	 * @throws Exception
	 */
	public PageData getAdrInfo(PageData pd)throws Exception;
	
	/**
	 * 根据用户id与地址id删除地址
	 * @author zhanglingbing
	 * @date 2018年2月5日
	 * @param pd
	 * @throws Exception
	 */
	public void delAddress(PageData pd)throws Exception;
	
	/**
	 * 查询收货地址列表
	 * @author zhanglingbing
	 * @date 2018年2月1日
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public List<PageData> selectAdrList(PageData pd)throws Exception;
	
	/**
	 * 通过订单id查询订单中子订单信息
	 * @author zhanglingbing
	 * @date 2018年2月1日
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public List<PageData> selectOrderitemInfoByOrderId(PageData pd)throws Exception;

	/**
	 * 通过订单id查询订单状态信息
	 * @author zhanglingbing
	 * @date 2018年2月1日
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public PageData selectOrderInfoByOrderId(PageData pd)throws Exception;
	
	/**
	 * 通过地址id查询地址信息
	 * @author zhanglingbing
	 * @date 2018年2月1日
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public PageData selectAdrInfoByAdrId(PageData pd)throws Exception;
	
	 /**
	  * 查询用户所有的订单
	  * @author zhanglingbing
	  * @date 2018年2月2日
	  * @param pd
	  * @return
	  * @throws Exception
	  */
	public List<PageData> getAllOrderList(PageData pd) throws Exception;
	
	/**
	 * 修改子订单状态
	 * @author zhanglingbing
	 * @date 2018年2月2日
	 * @param pd
	 * @throws Exception
	 */
	public void updateOrderStatus(PageData pd) throws Exception;
	
	/**
	 * 【一键支付】修改订单支付状态，付款时间（订单表）
	 * @author zhanglingbing
	 * @date 2018年2月23日
	 * @param pd
	 * @throws Exception
	 */
	public void updateOrder(PageData pd) throws Exception;
	
	/**
	 * 删除订单
	 * @author zhanglingbing
	 * @date 2018年2月2日
	 * @param pd
	 * @throws Exception
	 */
//	public void delorder(PageData pd) throws Exception;
	
	/**
	 *  根据商家id查询订单列表
	  * @Description
	  * @Author zhaozhenhua
	  * @date   2018年2月3日
	  * @param pd
	  * @return
	  * @throws Exception
	 */
	public List<PageData> getOrderListById(PageData pd) throws Exception;
	/**
	 * 删除子订单
	 * @author zhanglingbing
	 * @date 2018年2月2日
	 * @param pd
	 * @throws Exception
	 */
	public void delorderitem(PageData pd) throws Exception ;

	/**
	 * 生成子订单
	 * @author zhanglingbing
	 * @date 2018年2月5日
	 * @param pd
	 * @throws Exception
	 */
	public void addOrderitem(PageData pd) throws Exception;
	
	/**
	 * 根据商家id以及订单状态获取订单金额
	 * @author zhanglingbing
	 * @date 2018年2月23日
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public PageData getOrderMoneyById(PageData pd)throws Exception;
	
	/**
	 * 根据商家id以及订单状态获取订单数量
	 * @author zhanglingbing
	 * @date 2018年2月23日
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	public PageData getOrderNumberById(PageData pd)throws Exception;
	
	 /* 后台获取订单的详细信息
	  * @Description
	  * @Author zhaozhenhua
	  * @date   2018年2月22日
	  * @param pd
	  * @return
	  * @throws Exception
	 */
	public PageData getOrderDetInfo(PageData pd) throws Exception;
	
	/**
	 * 后台根据订单号获取订单项
	  * @Description
	  * @Author zhaozhenhua
	  * @date   2018年2月22日
	  * @param pd
	  * @return
	  * @throws Exception
	 */
	public List<PageData> getOrderItemById(PageData pd) throws Exception;
	
	/**
	 * 后台获取物流管理订单信息
	  * @Description
	  * @Author zhaozhenhua
	  * @date   2018年2月23日
	  * @param pd
	  * @return
	  * @throws Exception
	 */
	public List<PageData> getLogisticsOrders(PageData pd) throws Exception;
	
	
	/**
	 * 根据用户id以及订单id查询子订单
	 * @author zhanglingbing
	 * @date 2018年3月1日
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	/*public List<PageData> getOrderItemInfoById(PageData pd) throws Exception;*/
	
	
	/**
	 * 根据订单号获取订单信息
	  * @Description
	  * @Author zhaozhenhua
	  * @date   2018年5月3日
	  * @param pd
	  * @return
	  * @throws Exception
	 */
	public PageData getByUserIdAndOrderNo(PageData pd) throws Exception;
	
	/**
	 * 根据订单号获取规格库存
	  * @Description
	  * @Author zhaozhenhua
	  * @date   2018年5月5日
	  * @param pd
	  * @return
	  * @throws Exception
	 */
	public List<PageData> getStockByNum(PageData pd) throws Exception;
	
}
